Certain types of data processing applications involve the comparison of related data sets, designed to determine the degree of relatedness of the data, and to interpret the significance of differences which may exist. Examples include applications designed to determine how a data set changes over time, as well as applications designed to evaluate differences between two different simultaneous views of the same data set.
Such applications may be greatly complicated if the data sets include differences which result from errors or from artifacts of the data gathering process. In such cases, substantive differences in the underlying data may be masked by artifacts which are of no substantive interest.
For example, analysis of a video sequence to determine whether an object is moving requires performing a frame-by-frame comparison to determine whether pixels have changed from one frame to another, and, if so, whether those pixel differences represent the movement of an object. Such a process requires distinguishing between pixel differences which may be of interest (those which show object movement) and pixel differences introduced as a result of extraneous artifacts (e.g., changes in the lighting). A simple pixel-by-pixel comparison is not well-suited to such applications, since such a comparison cannot easily distinguish between meaningful and meaningless pixel differences.
A second example of such problems involves calculation of depth information from stereo images of the same scene. Given two pictures of the same scene taken simultaneously, knowledge of the distance between the cameras, focal length, and other optical lens properties, it is possible to determine the distance to any pixel in the scene (and therefore to any related group of pixels, or object). This cannot be accomplished through a simple pixel-matching, however, since (a) pixels at a different depth are offset a different amount (this makes depth calculation possible); and (b) the cameras may have slightly different optical qualities. Since differences created by the fact that pixels at different depths are offset different amounts is of interest, while differences created as an artifact of camera differences is not of interest, it is necessary to distinguish between the two types of differences.
In addition, it may be useful to perform such comparisons in real-time. Stereo depth analysis, for example, may be used to guide a robot which is moving through an environment. For obvious reasons, such analysis is most useful if performed in time for the robot to react to and avoid obstacles. To take another example, depth information may be quite useful for video compression, by allowing a compression algorithm to distinguish between foreground and background information, and compress the latter to a greater degree than the former.
Accurate data set comparisons of this type are, however, computationally intensive. Existing applications are forced to either use very high-end computers, which are too expensive for most real-world applications, or to sacrifice accuracy or speed. Such algorithms include Sum of Squared Differences (“SSD”), Normalized SSD and Lapalacian Level Correlation. As implemented, these algorithms tend to exhibit some or all of the following disadvantages: (1) low sensitivity (the failure to generate significant local variations within an image); (2) low stability (the failure to produce similar results near corresponding data points); and (3) susceptibility to camera differences. Moreover, systems which have been designed to implement these algorithms tend to use expensive hardware, which renders them unsuitable for many applications.
Current correspondence algorithms are also incapable of dealing with factionalism because of limitations in the local transform operation. Factionalism is the inability to adequately distinguish between distinct intensity populations. For example, an intensity image provides intensity data via pixels of whatever objects are in a scene. Near boundaries of these objects, the pixels in a some local region in the intensity image may represent scene elements from two distinct intensity populations. Some of the pixels come from the object, and some from other parts of the scene. As a result, the local pixel distribution will in general be multimodal near a boundary. An image window overlapping this depth discontinuity will match two half windows in the other image at different places. Assuming that the majority of pixels in such a region fall on one side of the depth discontinuity, the depth estimate should agree with the majority and not with the minority. This poses a problem for many correspondence algorithms. If the local transform does not adequately represent the intensity distribution of the original intensity data, intensity data from minority populations may skew the result. Parametric transforms, such as the mean or variance, do not behave well in the presence of multiple distinct sub-populations, each with its own coherent parameters.
A class of algorithms known as non-parametric transforms have been designed to resolve inefficiencies inherent in other algorithms. Non-parametric transforms map data elements in one data set to data elements in a second data set by comparing each element to surrounding elements in their respective data set, then attempt to locate elements in the other data set which have the same relationship to surrounding elements in that set. Such algorithms are therefore designed to screen out artifact-based differences which result from differences in the manner in which the data sets were gathered, thereby allowing concentration on differences which are of significance.
The rank transform is one non-parametric local transform. The rank transform characterizes a target pixel as a function of how many surrounding pixels have a higher or lower intensity than the target pixel. That characterization is then compared to characterizations performed on pixels in the other data set, to determine the closest match.
The census transform is a second non-parametric local transform algorithm. Census also relies on intensity differences, but is based on a more sophisticated analysis than rank, since the census transform is based not simply on the number of surrounding pixels which are of a higher or lower intensity, but on the ordered relation of pixel intensities surrounding the target pixel. Although the census transform constitutes a good algorithm known for matching related data sets and distinguishing differences which are significant from those which have no significance, existing hardware systems which implement this algorithm are inefficient, and no known system implements this algorithm in a computationally efficient manner.
In the broader field of data processing, a need exists in the industry for a system and method which analyze data sets to determine relatedness, extract substantive information that is contained in these data sets, and filter out other undesired information. Such a system and method should be implemented in a fast and efficient manner. The present invention provides such a system and method and provides solutions to the problems described above.